// 原题 将下面的异步代码使用Promise 的方式改进
// setTimeout(function () {
//     var a = 'hello'
//     setTimeout(function () {
//         var b = 'lagou'
//         setTimeout(function () {
//             var c = 'I love you'
//             console.log(a + b + c)
//         }, 10)
//     }, 10)
// }, 10)


// 改进

const createPromise = (time = 0) => {  // 面向函数编程高阶函数，因为time相同
    return (prop) => { // 柯里化的使用
        return new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve(prop)
            }, time)
        })
    }
}
const fun = createPromise(10) 
fun('hello').then(value => {
    return value  //这样t返回value, 下面的hen链式调用就能得到这次的value值
}).then(value => {
    return fun(`${value}lagou`)
}).then(value => {
    return fun(`${value}I love you`)
}).then(value => {
    console.log(value)
})
